#!/bin/bash


# Unicode characters specification:
# @see http://unicode.org/emoji/charts/full-emoji-list.html

# Make sure you have installed the proper fonts like e.g: Symbola, DingBats, FreeFont etc.
# otherwise the emoji's cannot be printed on the terminal

# Print a single emoji on the terminal
# Example:
# echo -e '\U1F604'
# 😄

# Unicode range for heart symbols:
# hex: 2700 – 27BF
# dec: 9984 – 10175
# font: Dingbats?
# @see https://www.iemoji.com/view/emoji/40/symbols/red-heart

# Generate hex numbers in a certain range
# Example:
# printf "%02X\n" {9984..10175}
# Generate a single hex number
# Example:
# $(printf "%02X" 1983)
# @see https://stackoverflow.com/questions/5517500/generating-hex-numbers-of-a-certain-range


# @see https://www.unicode.org/charts/PDF/U2460.pdf
echo -e "\n > Enclosed Alphanumerics: "
echo -e "   Unicode Range: '2460 - 24FF':\n"
for i in {9312..9471}; do hex=$(printf "%02X" ${i}); echo -e "\tU+${hex}   \U${hex}"; done

# @see https://www.unicode.org/charts/PDF/U25A0.pdf
echo -e "\n > Geometric Shapes:"
echo -e "   Unicode Range: '25A0 - 25FF':\n"
for i in {9632..9727}; do hex=$(printf "%02X" ${i}); echo -e "\tU+${hex}   \U${hex}"; done

# @see https://www.unicode.org/charts/PDF/Unicode-5.1/U51-2B00.pdf
echo -e "\n > Miscellaneous Symbols and Arrows"
echo -e "   Unicode Range: '2B00 - 2BFF':\n"
for i in {11008..11263}; do hex=$(printf "%02X" ${i}); echo -e "\tU+${hex}   \U${hex}"; done

# @see https://www.unicode.org/charts/PDF/Unicode-3.2/U32-2700.pdf
echo -e "\n > Dingbats:"
echo -e "   Unicode Range: '2700 - 27BF':\n"
for i in {9984..10175}; do hex=$(printf "%02X" ${i}); echo -e "\tU+${hex}   \U${hex}"; done

#@see https://www.unicode.org/charts/PDF/U1F300.pdf"
echo -e "\n > Miscellaneous Symbols and Pictographs"
echo -e "   Unicode Range: '1F300 - 1F5FF':\n"
for i in {127744..128511}; do hex=$(printf "%02X" ${i}); echo -e "\tU+${hex}   \U${hex}"; done

#@see https://unicode.org/Public/emoji/15.1/emoji-test.txt"
echo -e "\n > Miscellaneous Symbols and Pictographs"
echo -e "   Unicode Range: '1F600 - 1F999':\n"
for i in {128512..129433}; do hex=$(printf "%02X" ${i}); echo -e "\tU+${hex}   \U${hex}"; done

#@see https://www.unicode.org/charts/PDF/U2600.pdf
echo -e "\n > Miscellaneous Symbols:"
echo -e "   Unicode Range: '2600 - 26FF':\n"
for i in {9728..9983}; do hex=$(printf "%02X" ${i}); echo -e "\tU+${hex}   \U${hex}"; done

